package com.hsq.ndmall.promotion.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * 优惠券信息及规则表
 *
 * @author Mr.Huang
 * @email 1607922199@qq.com
 * @date 2021-08-11 21:16:46
 */
@Data
@TableName("sms_coupon")
public class CouponEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 *
	 */
	@ApiModelProperty(value = "")
	@TableId
	private Integer id;
	/**
	 * 优惠券名称
	 */
	@ApiModelProperty(value = "优惠券名称")
	private String name;
	/**
	 * 优惠券介绍，通常是显示优惠券使用限制文字
	 */
	@ApiModelProperty(value = "优惠券介绍，通常是显示优惠券使用限制文字")
	@TableField("`desc`")
	private String desc;
	/**
	 * 优惠券标签，例如新人专用
	 */
	@ApiModelProperty(value = "优惠券标签，例如新人专用")
	private String tag;
	/**
	 * 优惠券数量，如果是0，则是无限量
	 */
	@ApiModelProperty(value = "优惠券数量，如果是0，则是无限量")
	private Integer total;
	/**
	 * 使用平台：0->全部；1->移动；2->PC
	 */
	@ApiModelProperty(value = "使用平台：0->全部；1->移动；2->PC")
	private Integer platform;
	/**
	 * 优惠金额，
	 */
	@ApiModelProperty(value = "优惠金额，")
	private BigDecimal discount;
	/**
	 * 最少消费金额才能使用优惠券。
	 */
	@ApiModelProperty(value = "最少消费金额才能使用优惠券。")
	private BigDecimal min;
	/**
	 * 用户领券限制数量，如果是0，则是不限制；默认是1，限领一张.
	 */
	@ApiModelProperty(value = "用户领券限制数量，如果是0，则是不限制；默认是1，限领一张.")
	@TableField("`limit`")
	private Integer limit;
	/**
	 * 每人限领张数
	 */
	@ApiModelProperty(value = "每人限领张数")
	private Integer perLimit;
	/**
	 * 使用门槛；0表示无门槛
	 */
	@ApiModelProperty(value = "使用门槛；0表示无门槛")
	private Integer minPoint;
	/**
	 * 优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换；3,则是指定类型卷 4，则是指定商品卷
	 */
	@ApiModelProperty(value = "优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换；3,则是指定类型卷 4，则是指定商品卷")
	private Integer type;
	/**
	 * 优惠券状态，如果是0则是正常可用；如果是1则是过期; 如果是2则是下架。
	 */
	@ApiModelProperty(value = "优惠券状态，如果是0则是正常可用；如果是1则是过期; 如果是2则是下架。")
	@TableField("`status`")
	private Integer status;
	/**
	 * 商品限制类型，如果0则全商品，如果是1则是类目限制，如果是2则是商品限制。
	 */
	@ApiModelProperty(value = "商品限制类型，如果0则全商品，如果是1则是类目限制，如果是2则是商品限制。")
	private Integer goodsType;
	/**
	 * 商品限制值，goods_type如果是0则空集合，如果是1则是类目集合，如果是2则是商品集合。
	 */
	@ApiModelProperty(value = "商品限制值，goods_type如果是0则空集合，如果是1则是类目集合，如果是2则是商品集合。")
	private String goodsValue;
	/**
	 * 优惠券兑换码
	 */
	@ApiModelProperty(value = "优惠券兑换码")
	@TableField("`code`")
	private String code;
	/**
	 * 有效时间限制，如果是0，则基于领取时间的有效天数days；如果是1，则start_time和end_time是优惠券有效期；
	 */
	@ApiModelProperty(value = "有效时间限制，如果是0，则基于领取时间的有效天数days；如果是1，则start_time和end_time是优惠券有效期；")
	private Integer timeType;
	/**
	 * 基于领取时间的有效天数days。
	 */
	@ApiModelProperty(value = "基于领取时间的有效天数days。")
	private Integer days;
	/**
	 * 使用券开始时间
	 */
	@ApiModelProperty(value = "使用券开始时间")
	private Date startTime;
	/**
	 * 使用券截至时间
	 */
	@ApiModelProperty(value = "使用券截至时间")
	private Date endTime;
	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间")
	private Date addTime;
	/**
	 * 更新时间
	 */
	@ApiModelProperty(value = "更新时间")
	private Date updateTime;
	/**
	 * 逻辑删除
	 */
	@ApiModelProperty(value = "逻辑删除")
	private Integer deleted;

}
